5. 2Д в 3Д
Итак, как я уже говорил, нам не с чем сравнивать положение нашего объекта, поэтому он так странно двигается. Для этой главы нам понадобятся: код из прошлого урока, и текстура. Что такое текстура? Для тех кто не знает попробую объяснить:
Текстура – это картинка в любом формате (самые популярные это .jpg, .bmp, .tga, .pcx, .png и.т.д.), которой мы закрашиваем какой-нить объект. Если объект большой, а текстура – нет, то она накладывается как бы повторяющимися квадратами. Вы наверняка видели в каких нибудь трёхмерных играх повторяющуюся траву, скалы – где-то это видно сразу, где-то сильно скрыто. Когда создаётся объект, он создаётся белым, а когда мы его текстурируем – то получается покрываем его картинкой – текстурой. Ну, будем надеяться, что кто этого не знал – примерно понял. В общем возьмите любую картинку из перечисленных форматов, и поместите её в ту же папку, где у вас сохранён этот код программы.
Сделаем мы так: создадим плоскость, которая будет находиться на одном месте, и относительно неё будет хорошо видно, что наш кубик всё таки движется.
Эта команда, также как и остальные команды создаёт объект, на этот раз плоскость (Plane). Что это такое? Ну, плоскость – это и есть плоскость. Она плоская и бесконечная. Да, один момент – плоскость видна только с одной стороны – с другой она невидимая (как и спрайт, кстати)!
Поставьте эту команду перед циклом, после создания куба, и если вы запустите программу… лучше не надо! J Перейдём-ка мы сразу дальше!
После создания плоскости загрузим текстуру из файла:
Эта команда загружает текстуру из файла Picture.bmp (это у меня так картинка называлась, а вы измените имя файла в кавычках на своё (кавычки нужно оставить), кстати, там можно писать полный путь к файлу, например “C:\Games\MyGame\MyPic.jpg” или “.\Data\Pics\Texture.jpg”)
Так, плоскость есть, текстура есть – осталось только затекстурировать эту плоскость:
Синтакс: EntityTexture объект, текстура – эта команда элементарно покрывает заданный объект заданной текстурой J. Да, и ещё одно – эта текстура наверняка будет смотреться мелко, поэтому я советую вставить такую команду после загрузки текстуры:
Она просто расширяет данную текстуру в10 раз по ширине и в 10 раз по высоте. Вот, вроде, и всё готово! Теперь у нас внизу есть плоскость, а куб как бы ездит по ней! Весь код:
…а теперь попробуйте сами затекстурировать куб!
| Оглавление:
0. Введение 5. 2Д в 3Д 7. Родительская зависимость или Привязки 9. Коллизион Детекшн или как устроен мир… 10. Первая 3Д игра. Часть 0 – основы движка 11. Первая 3Д игра. Часть 1 – разработка движка 12. Первая 3Д игра. Часть 2 – устранение багов 13. Первая 3Д игра. Часть 3 – внешний вид 14. Первая 3Д игра. Часть 4 – от массива к спискам 15. Первая 3Д игра. Часть 5 – оптимизация кода 16. Первая 3Д игра. Часть 6 – завершение 17. Выведение
|